﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SQLDocumentor.SQLModel
{
    public class SQLDatabase
    {
        public bool IsUpdateable;
        public bool AnsiNullDefault { get; set; }

        public bool AnsiNullsEnabled { get; set; }

        public bool AnsiPaddingEnabled { get; set; }

        public bool AnsiWarningsEnabled { get; set; }

        public bool AutoClose { get; set; }

        public bool ArithmeticAbortEnabled { get; set; }

        public bool AutoCreateStatisticsEnabled { get; set; }

        public bool AutoShrink { get; set; }

        public bool AutoUpdateStatisticsAsync { get; set; }

        public bool AutoUpdateStatisticsEnabled { get; set; }

        public string AvailabilityGroupName { get; set; }

        public bool BrokerEnabled { get; set; }

        public bool CaseSensitive { get; set; }

        public bool ChangeTrackingAutoCleanUp { get; set; }

        public bool ChangeTrackingEnabled { get; set; }

        public int ChangeTrackingRetentionPeriod { get; set; }

        public bool CloseCursorsOnCommitEnabled { get; set; }

        public string Collation { get; set; }

        public bool ConcatenateNullYieldsNull { get; set; }

        public DateTime CreateDate { get; set; }

        public Guid DatabaseGuid { get; set; }

        public bool DatabaseOwnershipChaining { get; set; }

        public string DatabaseSnapshotBaseName { get; set; }

        public double DataSpaceUsage { get; set; }

        public bool DateCorrelationOptimization { get; set; }

        public bool DboLogin { get; set; }

        public string DefaultFileGroup { get; set; }

        public string DefaultFileStreamFileGroup { get; set; }

        public string DefaultFullTextCatalog { get; set; }

        public string DefaultFullTextLanguage { get; set; }

        public string DefaultLanguage { get; set; }

        public string DefaultSchema { get; set; }

        public bool EncryptionEnabled { get; set; }

        public string FilestreamDirectoryName { get; set; }

        public bool HonorBrokerPriority { get; set; }

        public int ID { get; set; }

        public double IndexSpaceUsage { get; set; }

        public bool IsAccessible { get; set; }

        public bool IsDatabaseSnapshot { get; set; }

        public bool IsDatabaseSnapshotBase { get; set; }

        public bool IsFederationMember { get; set; }

        public bool IsFullTextEnabled { get; set; }

        public bool IsMailHost { get; set; }

        public bool IsManagementDataWarehouse { get; set; }

        public bool IsMirroringEnabled { get; set; }

        public bool IsParameterizationForced { get; set; }

        public bool IsReadCommittedSnapshotOn { get; set; }

        public bool IsSystemObject { get; set; }

        public bool IsVarDecimalStorageFormatEnabled { get; set; }

        public DateTime LastBackupDate { get; set; }

        public DateTime LastDifferentialBackupDate { get; set; }

        public DateTime LastLogBackupDate { get; set; }

        public bool LocalCursorsDefault { get; set; }

        public decimal MirroringFailoverLogSequenceNumber { get; set; }

        public Guid MirroringID { get; set; }

        public string MirroringPartner { get; set; }

        public string MirroringPartnerInstance { get; set; }

        public int MirroringRedoQueueMaxSize { get; set; }

        public int MirroringRoleSequence { get; set; }

        public int MirroringSafetySequence { get; set; }

        public int MirroringTimeout { get; set; }

        public string MirroringWitness { get; set; }

        public string Name { get; set; }

        public bool NestedTriggersEnabled { get; set; }

        public bool NumericRoundAbortEnabled { get; set; }

        public string Owner { get; set; }

        public string PrimaryFilePath { get; set; }

        public bool QuotedIdentifiersEnabled { get; set; }

        public bool ReadOnly { get; set; }

        public Guid RecoveryForkGuid { get; set; }

        public bool RecursiveTriggersEnabled { get; set; }

        public Guid ServiceBrokerGuid { get; set; }

        public double Size { get; set; }

        public double SpaceAvailable { get; set; }

        public bool Trustworthy { get; set; }

        public int TwoDigitYearCutoff { get; set; }

        public string UserName { get; set; }

        public int Version { get; set; }

        public SQLApplicationRole[] ApplicationRoles { get; set; }
        public SQLAssembly[] Assemblies { get; set; }
        public SQLEvent[] Events { get; set; }
        public SQLStoredProcedure[] StoredProcedures { get; set; }
        public SQLTable[] Tables { get; set; }

        public SQLRole[] Roles { get; set; }
        public SQLLogFile[] LogFiles { get; set; }
        public SQLUser[] Users { get; set; }
    }
}
